﻿@model PcaCaja.BOL.oGrupoMovimiento 

@{
    var X = Html.X();
}

@(
    X.GridPanel()
        .ID("GridGruposMovimiento")
        .Title("Grupos")
        .Flex(1)
        .Store(
            X.StoreForModel()
                .AutoLoad(false)
                .ID("storeGruposMovimiento")
                .Parameters(p =>
                {
                    p.Add(new StoreParameter() { Name = "tipoMovimientoId", Value = "App.tipoMovimientoId.getValue()", Mode = ParameterMode.Raw });
                })
                .Proxy(
                    X.AjaxProxy()
                        .Url(Url.Action("GetList", "GrupoMovimiento"))
                        .Reader(X.JsonReader().RootProperty("data"))
                )
                .RemoteSort(false)
                .PageSize(20)
        )
        .DirectEvents(de =>
        {
            de.ItemDblClick.Url = Url.Action("RunCommandGrid", "GrupoMovimiento");
            de.ItemDblClick.ExtraParams.Add(new Parameter { Name = "commandName", Value = "cmdEditar", Mode = ParameterMode.Value });
            de.ItemDblClick.ExtraParams.Add(new Parameter { Name = "grupoMovimientoId", Value = "record.data.grupo_movimiento_id", Mode = ParameterMode.Raw });
            de.ItemDblClick.Before = "Ext.getBody().mask('Cargando...!', 'x-mask-loading');";
            de.ItemDblClick.Complete = "Ext.getBody().unmask();";
            de.ItemDblClick.Failure = "PcaGlobal.showError(result.msg);";
        })
        .ColumnModel(
                X.Column().DataIndex(Model, m => m.codigo).Text("Codigo").Width(70),
                X.Column().DataIndex(Model, m => m.nombre).Text("Nombre").Flex(1),
                X.CommandColumn().Hideable(false).Text("Operaciones").Align(Alignment.Center)
                    .Commands(
                        X.GridCommand().CommandName("cmdEditar").ToolTip(t => t.Text = "Editar grupo").Icon(Icon.ApplicationEdit),
                        X.GridCommand().CommandName("cmdEliminar").ToolTip(t => t.Text = "Eliminar grupo").Icon(Icon.ApplicationDelete),
                        X.GridCommand().CommandName("cmdEditarSubGrupos").ToolTip(t => t.Text = "Editar sub grupos").Icon(Icon.ApplicationViewDetail)
                    )
                    .DirectEvents(de =>
                    {
                        de.Command.Url = Url.Action("RunCommandGrid", "GrupoMovimiento");
                        de.Command.ExtraParams.Add(new Parameter { Name = "commandName", Value = "command", Mode = ParameterMode.Raw });
                        de.Command.ExtraParams.Add(new Parameter { Name = "grupoMovimientoId", Value = "record.data.grupo_movimiento_id", Mode = ParameterMode.Raw });
                        de.Command.Before = "Ext.getBody().mask('Cargando...!', 'x-mask-loading');";
                        de.Command.Complete = "Ext.getBody().unmask();";
                        de.Command.Failure = "PcaGlobal.showError(result.msg);";
                    })
        )
        .TopBar(
            X.Toolbar()
                .Items(
                    X.Button()
                        .ID("btnNuevoGrupo")
                        .Text("Nuevo")
                        .Disabled(true)
                        .Icon(Icon.Add)
                        .DirectEvents(de =>
                        {
                            de.Click.Url = Url.Action("FrmRegistrar", "GrupoMovimiento");
                            de.Click.ExtraParams.Add(new Parameter { Name = "tipoMovimientoId", Value = "App.tipoMovimientoId.getValue()", Mode = ParameterMode.Raw });
                            de.Click.Before = "Ext.getBody().mask('Cargando...!', 'x-mask-loading');";
                            de.Click.Complete = "Ext.getBody().unmask();";
                        }),
                    X.ToolbarSeparator(),
                    X.ComboBox()
                        .ID("tipoMovimientoId")
                        .FieldLabel("Tipo movimiento")
                        .MarginSpec("0 0 0 7")
                        .LabelWidth(100)
                        .Width(300)
                        .QueryMode(DataLoadMode.Local)
                        .ForceSelection(true)
                        .DisplayField("nombre")
                        .ValueField("tipo_movimiento_id")
                        .EmptyText("Seleccione...")
                        .Store(
                            X.StoreFor(typeof(PcaCaja.BOL.oTipoMovimiento))
                                .AutoLoad(true)
                                .Proxy(
                                    X.AjaxProxy()
                                        .Url(Url.Action("GetList", "TipoMovimiento"))
                                        .Reader(X.JsonReader().RootProperty("data"))
                                )
                        )
                        .Listeners(l => {
                            l.Select.Handler = @"App.storeGruposMovimiento.load();
                                                 App.btnNuevoGrupo.setDisabled(false);
                                                 App.GridSubGruposMovimiento.hide();";
                        })
                )
       )
       .BottomBar(
            X.PagingToolbar()
                .DisplayInfo(true)
                .DisplayMsg("Mostrando grupos {0}-{1} de {2}")
                .EmptyMsg("No existen grupos")
       )
)
